package seqlist.LeetCode;
//26. 删除有序数组中的重复项

/**
 * 给你一个 升序排列 的数组 nums ，
 * 请你 原地 删除重复出现的元素，使每个元素 只出现一次 ，
 * 返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。
 */

/**
 * 思路一：可以用双指针（引用）方法，因为数组是升序的
 * 所以说后一项肯定会大于前一项，根据这个特殊就可以写出了。
 */
public class Num_26_removeDuplicates {
    public int removeDuplicates(int[] nums) {
        //判断边界条件
        if(nums == null || nums.length == 0)return 0;
        int slow = 0;//只用来接收正确的
        int fast = 0;//遇到重复的就跳过

        while(fast < nums.length){
            if(nums[slow] != nums[fast]){
                slow ++;
                nums[slow] = nums[fast];
            }
            fast ++;
        }
        return slow + 1;
    }
}
